Networked computing devices very often operate in a client and server relationship. In such a relationship, a client program running on a first computing device may make service requests of another program running on a second computing device called a server. The server fulfills the request made by the client. Thus, the client/server model has the potential to provide efficient allocation of tasks to various computing devices that are appropriate to the respective computing devices.
One type of client/server model is a thin-client architecture. As the name suggests, in a thin-client architecture, the client possesses minimal computing power, and the server performs the vast majority of the processing that is accomplished. One particular type of thin-client architecture that has been developed by Sun Microsystems, Inc. of Palo Alto, Calif. is the Stateless, Low-level Interface Machine (“SLIM”). An embodiment of this SLIM has been developed by Sun Microsystems under the trademark SUN RAY. A SLIM is called “stateless” because the state of the program that is running on the machine is not recorded in the machine. Instead, the state is maintained on the server with which the SLIM interacts. Consequently, a SLIM does not need to maintain the hardware and software that is necessary to track state. A SLIM only maintain states with regard to its input/output devices. A memory located on the SLIM may be used to reduce network traffic between the SLIM and the server by maintaining a transient state. For example, a local frame buffer in the SLIM may be used to record the state of video data provided for display by the SLIM. Therefore, changes in the display may be made by only sending updates to portions of the memory that require alteration for an updated display.
A SLIM is considered “low-level” because it performs practically no processing on the information it exchanges with the server. A SLIM interacts with a server using raw input/output data. Therefore, a SLIM is not required to maintain the complex hardware and software that are needed to perform computationally complex functions.
A SLIM, therefore, is a very effective fixed-function appliance. By implementing a simple, low-level protocol, a SLIM can be a computer terminal, a data input device, a data output device, or some combination of these. Example input/output capabilities include but are not limited to universal serial bus, stereo input/output, display information, composite video, and red-green-blue (“RGB”) video. Consequently, current implementations of a SUN RAY machine can output information to a projection device.
There presently exist in the marketplace projection devices that will receive red-green-blue (RGB) information from a computer. A common type of projector currently being offered in the marketplace is a liquid crystal display (“LCD”) projector. A typical means of employing an LCD projector is to connect the projector to a personal computer so that graphical representations generated on the personal computer can be magnified and shown to a large group of people. However, such connections between the projector and the computer are often difficult to accomplish in a timely manner. In addition to connector types, scan and resolution compatibilities must be negotiated. It would be advantageous to avoid such difficulties by integrating a projector with a computing device. Further, it would be advantageous if the computing device was not a relatively complex and expensive personal computer, but instead a SLIM computing device.
It would also be very desirable to use a SLIM device and server combination projector to control various aspects of the image being projected, such as the brightness, contrast, tint, and image shape. Because all image rendering is accomplished on the server, sufficient processing power is available to control these and other aspects of an image. An image aspect of particular concern with typical projector technology is the trapezoidal shape of an image projected toward a surface that is not perpendicular with the direction of projection. It would be a significant improvement in the art to provide systems and methods that could employ the power of a server computer to manipulate and control various aspects of a projected image, yet provide an economical, integrated, client projector computing device.